📜

[ABY2.0]Improved Mixed -Protocol Secure Two-Party Computation

ABSTRACT

Contribution:

1 Introduction

Categories:

Mixed-protocol blocks:

Practical runtimes: Beaver multiplication triples

在input-independent setup phase 生成一些相关的随机组(Beaver multiplication triple),这些组会在input-dependent online phase使用,加快online的处理速度。

Beaver multiplication triples: [9]D. Beaver. Efficient multiparty protocols using circuit randomization. In CRYPTO, 1991.

1.1 Our Contributions

Comparison of ABY2.0 and other 2PC protocols

[41] ABY: [13]SPDZ:

Mixed Protocol Conversions

reduces the number of online rounds from 2 to 1 use correlated OTs(cOT)

Optimization: cOT

[5]cOT

Building Blocks

1.2 Related Work

Eff. SS-based solutions for the dishonest majority over fields [40] [56] Extended to the ring [35]

[82] extended the multiplication from 2-input to N-input using Beaver triple extension

2 Preliminaries

3 2PC in Arithmetic, Boolean and Yao's World

3.1 2PC in Arithmetic World

highlight: its effectiveness towards efficient realisations for multiple input multiplication gates and dot product operations.

3.1.2 Sharing Semantics

Sharing Notions:

3.1.3 Protocols

Sharing Protocol

enable party PiP_i to generate a <·>-sharing of its input value v

PiP_i generate a <·>-sharing of its input value v

  1. (setup)generate a [·]-shared: [δv][\delta_v]
    1. PiP_i samples random [δv]i[\delta_v]_i
    1. two parties together sample [δv]1i[\delta_v]_{1-i}

    PiP_i knows δv=[δv]0+[δv]1\delta_{v}=\left[\delta_{v}\right]_{0}+\left[\delta_{v}\right]_{1}

  1. (online) Δv\Delta_v is konwn to both
    1. PiP_i computes Δv=v+δv\Delta_{v}=v+\delta_{v}
    1. PiP_i sends it to P1iP_{1-i}

REC

Linear Operations

Given <a>, <b> and public constants c1,c2c_1,c_2.

Parties can locally compute y=c1a+c2b\langle\mathbf{y}\rangle=c_{1} \cdot\langle\mathrm{a}\rangle+c_{2} \cdot\langle\mathrm{b}\rangle

Multiplication Protocol

Figure 2: Multiplication Protocol

OT based setup MULT

Correlated OTs(cOT) [5]

Execute cOTll\mathrm{cOT}_l^l to [·] sharing of [δa]0[δb]1\left[\delta_{\mathrm{a}}\right]_{0}\left[\delta_{\mathrm{b}}\right]_{1}

HE-based setupMULT:

  1. P0 : use pk0 encrypts its msg [δa]0,[δb]0\left[\delta_{\mathrm{a}}\right]_{0},\left[\delta_{\mathrm{b}}\right]_{0} P1: use pk0 encrypts [δa]1,[δb]1\left[\delta_{\mathrm{a}}\right]_{1},\left[\delta_{\mathrm{b}}\right]_{1} and random element rr
  1. P0: sends ciphertext to P1
  1. P1: computes ciphertext correspnding to v: v=[δ2]0[δb]1+[δa]1[δb]0rv=\left[\delta_{2}\right]_{0}\left[\delta_{b}\right]_{1}+\left[\delta_{a}\right]_{1}\left[\delta_{b}\right]_{0}-r (HE) and sends encryption of v to P0
  1. P0: use sk0 decrypt it

3.1.1 High-level Overview of Our 2PC over Ring

Beaver's technique on gates inputs

Beaver's multiplication triples: [9]

Figure 1: High Level overview of Beaver's and ABY2.0

Our technique on gate outputs:

Main Idea:

3.1.4 Multi-Input Multiplications Gates

3-Input Multiplication gate:

Multi-Input Multiplication gate

3.2 2PC in Boolean World

3.3 2PC in Yao World

Main:

Yao World from ABY [41]

For a wire with v0,1v\in0,1

GC Optimization

free-XOR: [70] Point-and-permute: [11]

4 Mixed Protocol Conversions

4.1 Standard Conversions

Highlight:

Y2B

Q: 是否泄漏了中间值?

总结来说,就是Y先转换为B中的表示,再根据成立的等式,用B中的运算得到相同的值。 其他也类似。

B2Y

A2Y

Y2A

A2B

Bit2A

B2A


But it results in a non-constant round protocol in the online phase.

A novel round makes uses of the Bit2A protocol.

4.2 Special Conversions

5 Building Blocks for Applications

5.1 Scalar Product

有一种方法是使用n个3.1.3节的乘法,但这样online communication的开销会和vector size n的大小有关,即每次计算出两个向量对应元素的乘积的<·>-share,最后本地加起来。

做出的优化,其实就是先本地求和,再share;

5.2 Matrix Multiplication

Notions:

MATMULT:

和乘法类似,唯一需要注意的是计算 [γAB][\mathrm{\gamma_{AB}}]

5.3 Depth-Optimized Circuits

Parallel-prefix Adders (PPA) [50]

PPA电路可以被优化为提取最高位的电路(BitExt)

5.4 Comparison

  1. parties locally compute v=xy\langle v\rangle=\langle x\rangle-\langle y\rangle
  1. P0, P1 boolean-share a and b respectively.
    1. v = a + b
    1. a=[δv]0a = -\left[\delta_{v}\right]_{0}
    1. b=Δv[δv]1\mathrm{b}=\Delta_{\mathrm{v}}-\left[\delta_{\mathrm{v}}\right]_{1}
  1. parties use Bit Extraction circuit to compute MSB(v)

5.5 Truncation

在online phase,计算[y]=[Δy][δy][\mathrm{y}]=\left[\Delta_{y}\right]-\left[\delta_{y}\right]。 Each party 截断后再分享,最后再还原。